package com.ruoyi.airspaceFlight.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 空域申请对象 t_airspace_apply
 * 
 * @author zc
 * @date 2023-11-04
 */
@Data
@TableName("t_airspace_apply")
public class AirspaceApply extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "airspace_apply_id", type = IdType.ASSIGN_UUID)
    private String airspaceApplyId;

    /**
     * 申请类型(0:个人,1:机构)
     */
    @Excel(name = "申请类型(0:个人,1:机构)")
    private Integer applyType;

    /**
     * 申请的个人名称或机构名称
     */
    @Excel(name = "申请的个人名称或机构名称")
    private String applyName;

    /**
     * 飞手名称
     */
    @Excel(name = "飞手名称")
    private String flyingHand;

    /**
     * 飞手编号
     */
    @Excel(name = "飞手编号")
    private String flyingId;

    /**
     * 航空器类型(0:无人驾驶航空器,1:有人驾驶航空器)
     */
    @Excel(name = "航空器类型(0:无人驾驶航空器,1:有人驾驶航空器)")
    private Integer aircraftType;

    /**
     * 航空器型号
     */
    @Excel(name = "航空器型号")
    private String aircraftId;

    /**
     * 空域低高(米）
     */
    @Excel(name = "空域低高(米）")
    private Integer lowHeight;

    /**
     * 空域顶高(米)
     */
    @Excel(name = "空域顶高(米)")
    private Integer topHeight;

    /**
     * 有效开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "有效开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /**
     * 有效结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "有效结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

////    @TableField(exist = false)
//    @JsonFormat(pattern = "yyyy-MM-dd")
//    private Date beginCreateTime;
//
////    @TableField(exist = false)
//    @JsonFormat(pattern = "yyyy-MM-dd")
//    private Date endCreateTime;
    /**
     * 飞行任务性质
     */
    @Excel(name = "飞行任务性质")
    @TableField("task_name")
    private String taskName;

    /**
     * 飞行模式(0:视距内,1:视距外)
     */
    @Excel(name = "飞行模式(0:视距内,1:视距外)")
    private Integer flightMode;

    /**
     * 操控模式(0:遥控飞行,1:自主飞行)
     */
    @Excel(name = "操控模式(0:遥控飞行,1:自主飞行)")
    private Integer operatorMode;

    /**
     * 联系人
     */
    @Excel(name = "联系人")
    private String contacts;

    /**
     * 联系人手机号
     */
    @Excel(name = "联系人手机号")
    private String mobile;

    /**
     * 申请空域性质(0:隔离空域,1:非隔离空域)
     */
    @Excel(name = "申请空域性质(0:隔离空域,1:非隔离空域)")
    private Integer airspaceNature;

    /**
     * 应急处置方案
     */
    @Excel(name = "应急处置方案")
    private String emergencyPlan;

    /**
     * 飞行区域(0:空域,1:航线)
     */
    @Excel(name = "飞行区域(0:空域,1:航线)")
    private Integer flightArea;

    /**
     * 飞行半径(单位:米)
     */
    @Excel(name = "飞行半径(单位:米)")
    private Long flightRadius;

    /**
     * 飞行地址
     */
    @Excel(name = "飞行地址")
    private String flightAddress;

    /**
     * 飞行中心经度
     */
    @Excel(name = "飞行中心经度")
    private BigDecimal flightLongitude;

    /**
     * 飞行中心纬度
     */
    @Excel(name = "飞行中心纬度")
    private BigDecimal flightLatitude;

    /**
     * 起飞方式(0:垂直爬升,1:倾斜爬升)
     */
    @Excel(name = "起飞方式(0:垂直爬升,1:倾斜爬升)")
    private Integer flyMode;

    /**
     * 起飞高度
     */
    @Excel(name = "起飞高度")
    private Integer flyHeight;

    /**
     * 起飞点地址
     */
    @Excel(name = "起飞点地址")
    private String takeOffPointAddress;

    /**
     * 起飞点经度
     */
    @Excel(name = "起飞点经度")
    private BigDecimal takeOffPointLongitude;

    /**
     * 起飞点纬度
     */
    @Excel(name = "起飞点纬度")
    private BigDecimal takeOffPointLatitude;

    /**
     * 降落点地址
     */
    @Excel(name = "降落点地址")
    private String landingPointAddress;

    /**
     * 降落点经度
     */
    @Excel(name = "降落点经度")
    private BigDecimal landingPointLongitude;

    /**
     * 降落点纬度
     */
    @Excel(name = "降落点纬度")
    private BigDecimal landingPointLatitude;

    /**
     * 备降点地址
     */
    @Excel(name = "备降点地址")
    private String alternateLandingPointAddress;

    /**
     * 备降点经度
     */
    @Excel(name = "备降点经度")
    private BigDecimal alternateLandingPointLongitude;

    /**
     * 备降点纬度
     */
    @Excel(name = "备降点纬度")
    private BigDecimal alternateLandingPointLatitude;

    /**
     * 航点集合
     */
    private String airlinePoints;

    /**
     * (0:审核中,1:已通过,2:未通过)
     */
    @Excel(name = "(0:审核中,1:已通过,2:未通过)")
    private Integer approvalStatus;

    /**
     * 空域申请编号
     */
    @Excel(name = "空域申请编号")
    private String airspaceApplyCode;


    //审批备注说明
    @Excel(name = "审批备注说明")
    private String approvalRemark;



}

